home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 26
/
Cream of the Crop 26.iso
/
program
/
qlib205.zip
/
QLIB.ZIP
/
TXT
/
PASM.TXT
< prev
next >
Wrap
Text File
|
1997-01-07
|
2KB
|
45 lines
PASM - Pre ASMbler
------------------
This pre-comlier allows for strings within ASM files. It simple looks for
"" and exchanges it with an offset to a data segment where the string is
placed. Usage:
PASM file.asm
It will go thru all included files and creat a massive ASM.TMP file
which is the final version that can be compiled. Another output file called
_STR_.TMP holds all the strings and must be included into the input ASM file.
But if PASM sees the include it will try and use it. Therefore this include
must be set as #include _str_.tmp and when PASM sees it, it just removes the
# and moves on. Then MASM can compile it. The only problem with this is
that if there are any errors within the ASM file you will not have any clue
where it was from (depending on how many files make the actual program).
You can edit the ASM.TMP to find out but it makes things a little harder.
PASM also changes \n into 13,10 and \\ into a \ and all other C type
conversions.
All of this is done for you when you include qlib.inc in your programs
so just use the strings.
Here are some examples:
mov edx,"\n Hello \n"
mov ah,9
int 21h
invoke printf,"Hello, world. AX=%w\n",ax
Here are some newer bugs found with PASM:
- PASM bugs : can't use forward references
: using signed numbers is very unpredictable
ie: callp proc,ax
When ax is a signed number it will always be zero extended
to a 32bit number. (even if you ASSUME ax:sbyte)
Just remember that everything is ZERO extended to 32bits.
Remedy : Use C for programming, ASM programming sux for BIG projects
or you can use INVOKE but be careful
See pasm.c(the source) for improvements...
See masmbugs.txt for more info...